package com.enjoyor.soa.traffic.api.ubms.service.dubbo;

import com.enjoyor.soa.traffic.api.ubms.dto.DeviceDicDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * 维护设备字典的Dubbo服务
 * @author yuankun
 * @version V1.0
 */
public interface DubboDeviceDicService {
	
	/**
	 * 返回所有设备字典
	 * @return ResultPojo 所有设备字典
	 */
	public ResultPojo getDeviceDic();
	
	/**
	 * 返回所有设备字典
	 * @return ResultPojo 所有设备字典
	 */
	public ResultPojo getDeviceDic(String dicCode, String parentCode, String itemCode, String typeCode,
			String orderSeq);
	/**
	 * 分页返回所有设备字典
	 * @param page 分页对象
	 * @return ResultPojo 包含设备字典的分页对象
	 */
	@SuppressWarnings("rawtypes")
	public ResultPojo getPageDeviceDic(Page page);
	
	@SuppressWarnings("rawtypes")
	public ResultPojo getPageDeviceDic(String dicCode, String parentCode, String itemCode, String typeCode,
			String orderSeq, Page page);
	/**
	 * 返回指定字典编码的设备字典
	 * @param dicCode 字典编码
	 * @return ResultPojo 设备字典
	 */
	public ResultPojo getDeviceDicByDicCode(String dicCode);
	
	/**
	 * 返回指定字典编码的所有下级设备字典
	 * @param parentCode 字典编码
	 * @return ResultPojo 所有下级设备字典
	 */
	public ResultPojo getDeviceDicByParentCode(String parentCode);

	/**
	 * 添加一条设备字典
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param deviceDicDto 设备字典
	 * @return ResultPojo 添加结果
	 */
	public ResultPojo addDeviceDic(String token, DeviceDicDto deviceDicDto);
	
	/**
	 * 修改一条设备字典
	 * @param token	以逗号分隔的输入信息，如用户名等
	 * @param deviceDicDto 设备字典
	 * @return ResultPojo 修改结果
	 */
	public ResultPojo editDeviceDic(String token, DeviceDicDto deviceDicDto);
	
	/**
	 * 删除指定编码的设备字典
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param dicCode 字典编码
	 * @return ResultPojo 删除结果
	 */
	public ResultPojo removeDeviceDic(String token, String dicCode);

}
